package br.com.usapre.faces;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import br.com.bean.CadastroEnderecoLojista;
import br.com.business.BairroBusiness;
import br.com.business.BancoBusiness;
import br.com.business.CidadeBusiness;
import br.com.business.EnderecoParceiroBusiness;
import br.com.business.LogradouroBusiness;
import br.com.business.MeioCapturaBusiness;
import br.com.business.ParceiroBusiness;
import br.com.business.RamoAtividadeBusiness;
import br.com.business.UfBusiness;
import br.com.data.Bairro;
import br.com.data.Banco;
import br.com.data.Cidade;
import br.com.data.EnderecoParceiro;
import br.com.data.Logradouro;
import br.com.data.MeioCaptura;
import br.com.data.Parceiro;
import br.com.data.RamoAtividade;
import br.com.data.Uf;
import br.com.data.Usuario;
import br.com.login.business.UsuarioBusiness;
import br.com.login.faces.SessionUsaPreBean;
import br.com.utilidades.criptografia.MD5Criptografia;
import br.com.utilidades.database.data.Criterio;
import br.com.utilidades.faces.SimpleMessageBean;
import br.com.utilidades.validacao.ValidacaoCNPJ;
import br.com.utilidades.validacao.ValidacaoCpf;
import constantes.CONSTANTES;

/**
 * @version 1.0.0
 * @since Janeiro,29 2013
 * @author Eduardo Francisco Barbosa
 */
@Component
@Scope("view")
public class CadastroLojistaBean extends SimpleMessageBean implements Serializable {

    private static final long serialVersionUID = 4713175841750982865L;

    private SessionUsaPreBean sessionUsaPreBean;

    private RamoAtividadeBusiness ramoAtividadeBusinessImpl;
    private ParceiroBusiness parceiroBusinessImpl;
    private UsuarioBusiness usuarioBusinessImpl;

    private UfBusiness ufBusinessImpl;
    private EnderecoParceiroBusiness enderecoParceiroBusinesImpl;
    private CidadeBusiness cidadeBusinessImpl;
    private BairroBusiness bairroBusinessImpl;
    private LogradouroBusiness logradouroBusinessImpl;
    private MeioCapturaBusiness meioCapturaBusinessImpl;

    private BancoBusiness bancoBusinessImpl;

    private List<Uf> ufs;

    private String cidadeBusca;
    private List<Cidade> cidades;

    private String bairroBusca;
    private List<Bairro> bairros;

    private String logradouroBusca;
    private List<Logradouro> logradouros;

    private String cepBusca;

    private CadastroEnderecoLojista cadastroLojista;

    private Banco bancoEscolhido;
    private List<Banco> bancos;

    private MeioCaptura meioCapturaEscolhida;
    private List<MeioCaptura> meiosCapturas;

    private String agencia;
    private String conta;

    private Integer telaCadastro;

    private Parceiro parceiro;

    public static final Integer TELA01 = 0;
    public static final Integer TELA02 = 1;
    public static final Integer TELA03 = 2;
    public static final Integer TELA04 = 3;
    public static final Integer TELA05 = 4;
    public static final Integer TELA06 = 5;

    private List<SelectItem> tipoPessoas;
    private String pessoaEscolhida;

    private List<RamoAtividade> ramoAtividadeLista;
    private RamoAtividade ramoAtividade;

    private String cpf;
    private String nome;

    private String cnpj;
    private String nomeFantasia;
    private String razaoSocial;

    private String nomeUsuario;
    private String senha;
    private String confirmacaoSenha;

    /**
     * Construtor
     */
    @Autowired
    public CadastroLojistaBean(SessionUsaPreBean sessionUsaPreBean, RamoAtividadeBusiness ramoAtividadeBusinessImpl,
	    ParceiroBusiness parceiroBusinessImpl, UsuarioBusiness usuarioBusinessImpl, UfBusiness ufBusinessImpl,
	    EnderecoParceiroBusiness enderecoParceiroBusinesImpl, CidadeBusiness cidadeBusinessImpl,
	    BairroBusiness bairroBusinessImpl, LogradouroBusiness logradouroBusinessImpl,
	    BancoBusiness bancoBusinessImpl, MeioCapturaBusiness meioCapturaBusinessImpl) {

	this.sessionUsaPreBean = sessionUsaPreBean;

	this.ufBusinessImpl = ufBusinessImpl;
	this.enderecoParceiroBusinesImpl = enderecoParceiroBusinesImpl;
	this.cidadeBusinessImpl = cidadeBusinessImpl;
	this.bairroBusinessImpl = bairroBusinessImpl;
	this.logradouroBusinessImpl = logradouroBusinessImpl;

	this.meioCapturaBusinessImpl = meioCapturaBusinessImpl;

	this.ramoAtividadeBusinessImpl = ramoAtividadeBusinessImpl;
	this.parceiroBusinessImpl = parceiroBusinessImpl;
	this.usuarioBusinessImpl = usuarioBusinessImpl;

	this.bancoBusinessImpl = bancoBusinessImpl;

	reset();
    }

    /**
     * isTela01
     * 
     * @return boolean
     */
    public boolean isTela01() {
	if (telaCadastro.equals(TELA01))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    /**
     * isTela02
     * 
     * @return boolean
     */
    public boolean isTela02() {
	if (telaCadastro.equals(TELA02))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    /**
     * isTela03
     * 
     * @return boolean
     */
    public boolean isTela03() {
	if (telaCadastro.equals(TELA03))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    /**
     * isTela04
     * 
     * @return boolean
     */
    public boolean isTela04() {
	if (telaCadastro.equals(TELA04))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    /**
     * isTela05
     * 
     * @return boolean
     */
    public boolean isTela05() {
	if (telaCadastro.equals(TELA05))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    /**
     * isTela06
     * 
     * @return boolean
     */
    public boolean isTela06() {
	if (telaCadastro.equals(TELA06))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    /**
     * reset
     */
    public void reset() {

	parceiro = sessionUsaPreBean.getParceiro();

	if (parceiro == null) {

	} else {

	    telaCadastro = parceiro.getStatusCredenciamento();

	}

	List<Criterio> criterios = new ArrayList<Criterio>();

	Criterio c = new Criterio();
	c.setTipo(Criterio.TIPO_INTEGER);
	c.setValue(0);
	c.setComparacao("<>");
	c.setCampo("id");

	criterios.add(c);

	ufs = ufBusinessImpl.buscarPorCriterios(criterios, "nome");

	cadastroLojista = new CadastroEnderecoLojista();

	cidades = new ArrayList<Cidade>();
	bairros = new ArrayList<Bairro>();
	logradouros = new ArrayList<Logradouro>();

	tipoPessoas = new ArrayList<SelectItem>();
	tipoPessoas.add(new SelectItem("1", "Pessoa Física"));
	tipoPessoas.add(new SelectItem("2", "Pessoa Jurídica"));

	pessoaEscolhida = "0";

	ramoAtividadeLista = ramoAtividadeBusinessImpl.buscarPorCriterios(new ArrayList<Criterio>(), "nome");

	bancos = bancoBusinessImpl.buscarPorNomeBusca("");

	meioCapturaEscolhida = new MeioCaptura();
	meiosCapturas = meioCapturaBusinessImpl.buscarPorCriterios(new ArrayList<Criterio>(), "");

    }

    /**
     * atualizaPessoaEscolhida
     */
    public void atualizaPessoaEscolhida() {

    }

    /**
     * cadastrarParceiro
     */
    public void cadastrarParceiro() {

	if (senha.equals(confirmacaoSenha)) {

	    List<Criterio> criterios = new ArrayList<Criterio>();

	    Criterio crit = new Criterio();
	    crit.setCampo("cpfCnpj");
	    crit.setComparacao("like");
	    crit.setTipo(Criterio.TIPO_STRING_CASE_SENSITIVE);
	    if (pessoaEscolhida.equals("1")) {
		crit.setValue(cpf);
	    }
	    if (pessoaEscolhida.equals("2")) {
		crit.setValue(cnpj);
	    }

	    criterios.add(crit);

	    List<Parceiro> parceirosIguais = parceiroBusinessImpl.buscarPorCriterios(criterios, "");

	    if (parceirosIguais.size() > 0) {
		String msg = "";
		if (pessoaEscolhida.equals("1")) {
		    msg = super.getMensagem("MN_cpf_cadastrado");
		}
		if (pessoaEscolhida.equals("2")) {
		    msg = super.getMensagem("MN_cnpj_cadastrado");
		}

		enviaMensagem(msg, msg);

	    } else {

		criterios = new ArrayList<Criterio>();

		crit = new Criterio();
		crit.setCampo("nomeUsuario");
		crit.setComparacao("like");
		crit.setTipo(Criterio.TIPO_STRING_CASE_SENSITIVE);
		crit.setValue(nomeUsuario);
		criterios.add(crit);

		List<Parceiro> loginParceirosIguais = parceiroBusinessImpl.buscarPorCriterios(criterios, "");
		List<Usuario> loginUsuariosIguais = usuarioBusinessImpl.buscarPorCriterios(criterios, "");

		if (loginParceirosIguais.size() > 0 || loginUsuariosIguais.size() > 0) {

		    String msg = super.getMensagem("MN_nome_usuario_indisponivel");
		    enviaMensagem(msg, msg);

		} else {

		    Boolean insercaoAutorizada = Boolean.FALSE;
		    String msgErro = "";

		    if (pessoaEscolhida.equals("1")) {

			insercaoAutorizada = ValidacaoCpf.validarCPF(cpf);
			msgErro = super.getMensagem("MN_cpf_invalido");
		    }
		    if (pessoaEscolhida.equals("2")) {

			insercaoAutorizada = ValidacaoCNPJ.validarCNPJ(cnpj);
			msgErro = super.getMensagem("MN_cnpj_invalido");
		    }

		    if (insercaoAutorizada) {

			try {

			    Parceiro parceiro = new Parceiro();

			    if (pessoaEscolhida.equals("1")) {
				parceiro.setTipoPessoa(1);
				parceiro.setCpfCnpj(cpf);
				parceiro.setNome(nome);
			    }
			    if (pessoaEscolhida.equals("2")) {
				parceiro.setTipoPessoa(2);
				parceiro.setCpfCnpj(cnpj);
				parceiro.setNome(razaoSocial);
				parceiro.setNomeFantasia(nomeFantasia);
			    }

			    parceiro.setDataCadastro(new Date());
			    parceiro.setRamoAtividade(ramoAtividade);
			    parceiro.setNomeUsuario(nomeUsuario);
			    parceiro.setStatusCredenciamento(1);
			    if (CONSTANTES.CRIPTOGRAFADO) {
				parceiro.setSenha(MD5Criptografia.criptografa(senha));
			    } else {
				parceiro.setSenha(senha);
			    }
			    parceiro.setTaxaAdm(ramoAtividade.getTaxaAdmPadrao());

			    parceiroBusinessImpl.salvar(parceiro);

			    sessionUsaPreBean.setLogado(Boolean.TRUE);
			    sessionUsaPreBean.setParceiro(parceiro);

			    try {
				FacesContext
					.getCurrentInstance()
					.getExternalContext()
					.redirect(
						"/" + CONSTANTES.URLUSAPRE
							+ "/lojistaSolicitarCredenciamentoLogado.jsf");
			    } catch (Exception ex) {
				ex.printStackTrace();
			    }

			} catch (Exception e) {
			    String msg = super.getMensagem("MN_ocorreu_problema_salvar");
			    enviaMensagem(msg, msg);
			}

		    } else {
			enviaMensagem(msgErro, msgErro);
		    }
		}
	    }
	} else {
	    String msg = super.getMensagem("MN_campo_senha_confirmacao_diferente_senha");
	    enviaMensagem(msg, msg);
	}
    }

    /**
     * buscarPorCep
     */
    public void buscarPorCep() {

	String cepS = cepBusca.replaceAll("-", "");

	if (cepS.length() == 8) {

	    Integer cepInt = Integer.parseInt(cepS);

	    List<Criterio> criterios = new ArrayList<Criterio>();

	    Criterio c = new Criterio();
	    c.setTipo(Criterio.TIPO_INTEGER);
	    c.setValue(cepInt);
	    c.setComparacao("=");
	    c.setCampo("cep");

	    criterios.add(c);

	    List<Logradouro> logs = logradouroBusinessImpl.buscarPorCriterios(criterios, "");

	    if (logs.size() > 0) {

		Logradouro log = logs.get(0);

		cidades = new ArrayList<Cidade>();
		bairros = new ArrayList<Bairro>();
		logradouros = new ArrayList<Logradouro>();

		cadastroLojista.setLogradouro(log);
		logradouros.add(log);

		cadastroLojista.setBairro(log.getBairro());
		bairros.add(log.getBairro());

		cadastroLojista.setCidade(log.getBairro().getCidade());
		cidades.add(log.getBairro().getCidade());

		Uf ufTemp = log.getBairro().getCidade().getUf();

		for (Uf uft : ufs) {
		    if (uft.getId().equals(ufTemp.getId())) {
			cadastroLojista.setUf(uft);
		    }
		}
	    }
	} else {
	    String cepInvalido = super.getMensagem("MN_campo_senha_confirmacao_diferente_senha");
	    enviaMensagem(cepInvalido, cepInvalido);
	}
    }

    /**
     * buscarPorCidade
     */
    public void buscarPorCidade() {

	if (cadastroLojista.getUf() == null) {
	    cidades = new ArrayList<Cidade>();
	    String selecioneEstado = super.getMensagem("MN_selecione_estado");
	    enviaMensagem(selecioneEstado, selecioneEstado);
	} else {

	    List<Criterio> criterios = new ArrayList<Criterio>();

	    Criterio c = new Criterio();
	    c.setTipo(Criterio.TIPO_STRING_CASE_SENSITIVE);
	    c.setValue("%" + cidadeBusca + "%");
	    c.setComparacao("like");
	    c.setCampo("nome");

	    criterios.add(c);

	    Criterio c1 = new Criterio();
	    c1.setTipo(Criterio.TIPO_INTEGER);
	    c1.setValue(cadastroLojista.getUf().getId());
	    c1.setComparacao("=");
	    c1.setCampo("uf.id");

	    criterios.add(c1);

	    cidades = cidadeBusinessImpl.buscarPorCriterios(criterios, "nome ASC");

	}

    }

    /**
     * buscarPorBairro
     */
    public void buscarPorBairro() {

	if (cadastroLojista.getCidade() == null) {
	    bairros = new ArrayList<Bairro>();
	    String selecioneCidade = super.getMensagem("MN_selecione_cidade");
	    enviaMensagem(selecioneCidade, selecioneCidade);
	} else {

	    List<Criterio> criterios = new ArrayList<Criterio>();

	    Criterio c = new Criterio();
	    c.setTipo(Criterio.TIPO_STRING_CASE_SENSITIVE);
	    c.setValue("%" + bairroBusca + "%");
	    c.setComparacao("like");
	    c.setCampo("nome");

	    criterios.add(c);

	    Criterio c1 = new Criterio();
	    c1.setTipo(Criterio.TIPO_INTEGER);
	    c1.setValue(cadastroLojista.getCidade().getId());
	    c1.setComparacao("=");
	    c1.setCampo("cidade.id");

	    criterios.add(c1);

	    bairros = bairroBusinessImpl.buscarPorCriterios(criterios, "nome ASC");

	}

    }

    /**
     * buscaPorLogradouro
     */
    public void buscaPorLogradouro() {

	if (cadastroLojista.getBairro() == null) {
	    logradouros = new ArrayList<Logradouro>();
	    String selecioneBairro = super.getMensagem("MN_selecione_bairro");
	    enviaMensagem(selecioneBairro, selecioneBairro);
	} else {

	    List<Criterio> criterios = new ArrayList<Criterio>();

	    Criterio c = new Criterio();
	    c.setTipo(Criterio.TIPO_STRING_CASE_SENSITIVE);
	    c.setValue("%" + logradouroBusca + "%");
	    c.setComparacao("like");
	    c.setCampo("nome");

	    criterios.add(c);

	    Criterio c1 = new Criterio();
	    c1.setTipo(Criterio.TIPO_INTEGER);
	    c1.setValue(cadastroLojista.getCidade().getId());
	    c1.setComparacao("=");
	    c1.setCampo("bairro.id");

	    criterios.add(c1);

	    logradouros = logradouroBusinessImpl.buscarPorCriterios(criterios, "nome ASC");

	}

    }

    /**
     * cadastroEndereço
     */
    public void cadastroEndereço() {

	parceiro.setTelefone(cadastroLojista.getTelefone());
	parceiro.setCelular(cadastroLojista.getCelular());
	parceiro.setEmail(cadastroLojista.getEmail());
	parceiro.setContato(cadastroLojista.getContato());
	parceiro.setStatusCredenciamento(TELA03);

	parceiroBusinessImpl.atualizar(parceiro);

	EnderecoParceiro ende = new EnderecoParceiro();

	ende.setLogradouro(cadastroLojista.getLogradouro());
	ende.setAtual(1);
	ende.setComplemento(cadastroLojista.getComplemento());
	ende.setNumero(cadastroLojista.getNumero());
	ende.setParceiro(parceiro);

	enderecoParceiroBusinesImpl.salvar(ende);

	telaCadastro = parceiro.getStatusCredenciamento();

    }

    /**
     * cadastroBanco
     */
    @SuppressWarnings("unused")
    public void cadastroBanco() {

	if (meioCapturaEscolhida == null) {
	    String meioCapturaObrigatorio = super.getMensagem("MN_meio_captura_obrigatorio");
	    enviaMensagem(meioCapturaObrigatorio, meioCapturaObrigatorio);
	} else {

	    String agenciaFinal = agencia.replaceAll("\\-", "");
	    agenciaFinal = agenciaFinal.replaceAll(" ", "");

	    String agenciaAnalise = agenciaFinal.replaceAll("x", "");
	    agenciaAnalise = agenciaAnalise.replaceAll("X", "");

	    Boolean ok = Boolean.FALSE;
	    try {

		Integer numeroAgencia = Integer.parseInt(agenciaFinal);
		ok = Boolean.TRUE;
	    } catch (Exception ex) {

	    }

	    if (ok) {

		String contaFinal = conta.replaceAll("\\-", "");
		contaFinal = contaFinal.replaceAll(" ", "");

		String contaAnalise = contaFinal.replaceAll("x", "");
		contaAnalise = contaAnalise.replaceAll("X", "");

		Boolean ok2 = Boolean.FALSE;
		try {
		    Integer numeroConta = Integer.parseInt(contaAnalise);
		    ok2 = Boolean.TRUE;
		} catch (Exception ex) {

		}

		if (ok2) {

		    parceiro.setBanco(bancoEscolhido);
		    parceiro.setAgencia(contaFinal);
		    parceiro.setContaCorrente(contaFinal);
		    parceiro.setMeioCaptura(meioCapturaEscolhida);

		    parceiro.setStatusCredenciamento(TELA04);

		    parceiroBusinessImpl.atualizar(parceiro);

		    telaCadastro = parceiro.getStatusCredenciamento();

		} else {
		    System.out.println("Erro2");
		    String contaNaoAceitavel = super.getMensagem("MN_conta_formato_nao_aceitavel");
		    enviaMensagem(contaNaoAceitavel, contaNaoAceitavel);
		}

	    } else {
		System.out.println("Erro1");
		String agenciaNaoAceitavel = super.getMensagem("MN_agencia_formato_nao_aceitavel");
		enviaMensagem(agenciaNaoAceitavel, agenciaNaoAceitavel);
	    }

	}

    }

    /**
     * aceiteContrato
     */
    public void aceiteContrato() {

	if (getCadastroLojista().getAceiteContrato()) {
	    parceiro.setStatusCredenciamento(4);

	    parceiroBusinessImpl.atualizar(parceiro);

	    telaCadastro = parceiro.getStatusCredenciamento();
	} else {
	    String aceitarContrato = super.getMensagem("MN_voce_precisa_aceitar_contrato");
	    enviaMensagem(aceitarContrato, aceitarContrato);
	}

    }

    /**
     * download
     */
    public void download() throws Exception {
	downloadFile("contratousacard.pdf", "../contrato/", FacesContext.getCurrentInstance());
    }

    /**
     * downloadFile
     * 
     * @param String
     *            filename
     * @param String
     *            fileLocation
     * @param FacesContext
     *            facesContext
     * 
     * @throws Exception
     */
    public static synchronized void downloadFile(String filename, String fileLocation, FacesContext facesContext)
	    throws Exception {

	ExternalContext context = facesContext.getExternalContext();
	ServletContext servletContext = (ServletContext) context.getContext();

	String relativeWebPath = "/contrato/contratousacard.pdf";
	String absoluteDiskPath = servletContext.getRealPath(relativeWebPath);

	File file = new File(absoluteDiskPath);
	InputStream fis = new FileInputStream(file);

	byte[] buf = new byte[1024 * 600];
	int offset = 0;
	int numRead = 0;
	while ((offset < buf.length) && ((numRead = fis.read(buf, offset, buf.length - offset)) >= 0)) {
	    offset += numRead;
	}
	fis.close();
	HttpServletResponse response = (HttpServletResponse) FacesContext.getCurrentInstance().getExternalContext()
		.getResponse();

	response.setContentType("application/octet-stream");
	response.setHeader("Content-Disposition", "attachment;filename=" + filename);
	response.getOutputStream().write(buf);
	response.getOutputStream().flush();
	response.getOutputStream().close();
	FacesContext.getCurrentInstance().responseComplete();

    }

    public boolean isPessoaJuridica() {
	if (pessoaEscolhida.equals("2"))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    public boolean isPessoaFisica() {
	if (pessoaEscolhida.equals("1"))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    public boolean isPessoa() {
	if (pessoaEscolhida.equals("1") || pessoaEscolhida.equals("2"))
	    return Boolean.TRUE;
	else
	    return Boolean.FALSE;
    }

    // SETS AND GETS
    public List<SelectItem> getTipoPessoas() {
	return tipoPessoas;
    }

    public void setTipoPessoas(List<SelectItem> tipoPessoas) {
	this.tipoPessoas = tipoPessoas;
    }

    public String getPessoaEscolhida() {
	return pessoaEscolhida;
    }

    public void setPessoaEscolhida(String pessoaEscolhida) {
	this.pessoaEscolhida = pessoaEscolhida;
    }

    public List<RamoAtividade> getRamoAtividadeLista() {
	return ramoAtividadeLista;
    }

    public void setRamoAtividadeLista(List<RamoAtividade> ramoAtividadeLista) {
	this.ramoAtividadeLista = ramoAtividadeLista;
    }

    public RamoAtividade getRamoAtividade() {
	return ramoAtividade;
    }

    public void setRamoAtividade(RamoAtividade ramoAtividade) {
	this.ramoAtividade = ramoAtividade;
    }

    public String getCpf() {
	return cpf;
    }

    public void setCpf(String cpf) {
	this.cpf = cpf;
    }

    public String getNome() {
	return nome;
    }

    public void setNome(String nome) {
	this.nome = nome;
    }

    public String getCnpj() {
	return cnpj;
    }

    public void setCnpj(String cnpj) {
	this.cnpj = cnpj;
    }

    public String getNomeFantasia() {
	return nomeFantasia;
    }

    public void setNomeFantasia(String nomeFantasia) {
	this.nomeFantasia = nomeFantasia;
    }

    public String getRazaoSocial() {
	return razaoSocial;
    }

    public void setRazaoSocial(String razaoSocial) {
	this.razaoSocial = razaoSocial;
    }

    public String getNomeUsuario() {
	return nomeUsuario;
    }

    public void setNomeUsuario(String nomeUsuario) {
	this.nomeUsuario = nomeUsuario;
    }

    public String getSenha() {
	return senha;
    }

    public void setSenha(String senha) {
	this.senha = senha;
    }

    public String getConfirmacaoSenha() {
	return confirmacaoSenha;
    }

    public void setConfirmacaoSenha(String confirmacaoSenha) {
	this.confirmacaoSenha = confirmacaoSenha;
    }

    public String getCidadeBusca() {
	return cidadeBusca;
    }

    public void setCidadeBusca(String cidadeBusca) {
	this.cidadeBusca = cidadeBusca;
    }

    public List<Cidade> getCidades() {
	return cidades;
    }

    public void setCidades(List<Cidade> cidades) {
	this.cidades = cidades;
    }

    public String getBairroBusca() {
	return bairroBusca;
    }

    public void setBairroBusca(String bairroBusca) {
	this.bairroBusca = bairroBusca;
    }

    public List<Bairro> getBairros() {
	return bairros;
    }

    public void setBairros(List<Bairro> bairros) {
	this.bairros = bairros;
    }

    public String getLogradouroBusca() {
	return logradouroBusca;
    }

    public void setLogradouroBusca(String logradouroBusca) {
	this.logradouroBusca = logradouroBusca;
    }

    public List<Logradouro> getLogradouros() {
	return logradouros;
    }

    public void setLogradouros(List<Logradouro> logradouros) {
	this.logradouros = logradouros;
    }

    public CadastroEnderecoLojista getCadastroLojista() {
	return cadastroLojista;
    }

    public void setCadastroLojista(CadastroEnderecoLojista cadastroLojista) {
	this.cadastroLojista = cadastroLojista;
    }

    public List<Uf> getUfs() {
	return ufs;
    }

    public void setUfs(List<Uf> ufs) {
	this.ufs = ufs;
    }

    public Banco getBancoEscolhido() {
	return bancoEscolhido;
    }

    public void setBancoEscolhido(Banco bancoEscolhido) {
	this.bancoEscolhido = bancoEscolhido;
    }

    public List<Banco> getBancos() {
	return bancos;
    }

    public void setBancos(List<Banco> bancos) {
	this.bancos = bancos;
    }

    public String getAgencia() {
	return agencia;
    }

    public void setAgencia(String agencia) {
	this.agencia = agencia;
    }

    public String getConta() {
	return conta;
    }

    public void setConta(String conta) {
	this.conta = conta;
    }

    public MeioCaptura getMeioCapturaEscolhida() {
	return meioCapturaEscolhida;
    }

    public void setMeioCapturaEscolhida(MeioCaptura meioCapturaEscolhida) {
	this.meioCapturaEscolhida = meioCapturaEscolhida;
    }

    public List<MeioCaptura> getMeiosCapturas() {
	return meiosCapturas;
    }

    public void setMeiosCapturas(List<MeioCaptura> meiosCapturas) {
	this.meiosCapturas = meiosCapturas;
    }

    public String getCepBusca() {
	return cepBusca;
    }

    public void setCepBusca(String cepBusca) {
	this.cepBusca = cepBusca;
    }

}
